package com.koron.css2.clientCenter.bean;

import com.koron.css2.baseConfig.bean.BaseBean;
import com.koron.util.Check;

/**
 * 账户信息实体类
 *
 * @author zheny
 */
public class AccountInfoBean extends BaseBean implements Cloneable {

    public static final int ACCOUNT = 1;// 正式表
    public static final int ACCOUNTTEMP = 2;// 临时表
    public static final int ACCOUNTHST = 3;// 历史表

    //@Check(name = "账户编号", notEmpty = true, notNull = true)
    private String accountNo;// 账户编号

    // 客户编号
    private String ctmNo;

    // 签约日期
    private String signContractDate;

    // 0未锁，1锁定，修改余额前锁定，最后解锁
    private int lockFlag;

    @Check(name = "账户类型", notEmpty = true, notNull = true)
    private String accountType;// 账户类型
    private String accountTypeName;// 账户类型

    @Check(name = "缴费方式", notEmpty = true, notNull = true)
    private String payWay;// 缴费方式
    private String payWayName;// 缴费方式
    private String openAccountBank;// 开户银行

    private String openAccountBankName;//开户银行名称

    private String openAccountName;// 开户名称
    private String vatFlag;// 增值税标记
    private String vatFlagName;// 增值税标记

    private String bankAccount;// 银行账号
    private String entrustNo;// 托收号
    private String entrustContract;// 托收合同号
    private String invoiceType;// 发票类型
    private String invoiceTypeName;// 发票类型
    private String invoiceTitle;// 单位名称
    private String invoiceTax;// 纳税人识别号
    private String invoiceAddr;// 联系地址
    private String invoiceLink;// 联系电话
    private String invoiceBank;// 开户银行
    private String invoiceBankName;// 购买方开户行名称
    private String invoiceAccount;// 银行账号
    //@Check(name = "投递方式", notEmpty = true)
    private String deliverWay;// 投递方式
    private String deliverWayName;// 投递方式
    //@Check(name = "投递地址", notEmpty = true)
    private String deliverAddr;// 投递地址
    //@Check(name = "邮箱地址", notEmpty = true)
    private String emailAddr;// 邮箱地址
    private Double accountBalance;// 账户余额
    private String bankSn;
    private int outNo;//出盘编号（1-新用户编号，2-旧用户编号）
    private String  unifiedCreditCode;
    private String  fixedPhone;
    private String  businessEnvironment;

    public String getUnifiedCreditCode() {
        return unifiedCreditCode;
    }

    public void setUnifiedCreditCode(String unifiedCreditCode) {
        this.unifiedCreditCode = unifiedCreditCode;
    }

    public String getFixedPhone() {
        return fixedPhone;
    }

    public void setFixedPhone(String fixedPhone) {
        this.fixedPhone = fixedPhone;
    }

    public String getBusinessEnvironment() {
        return businessEnvironment;
    }

    public void setBusinessEnvironment(String businessEnvironment) {
        this.businessEnvironment = businessEnvironment;
    }

    /**
     * 预开票标志
     */
    private Integer preInvoicing;

    /**
     * 合并开票，0不合并,1默认合并
     */
    private Integer mergeInvoicing;

    public Integer getMergeInvoicing() {
        return mergeInvoicing;
    }

    public void setMergeInvoicing(Integer mergeInvoicing) {
        this.mergeInvoicing = mergeInvoicing;
    }

    public String getDeliverWayName() {
        return deliverWayName;
    }

    public void setDeliverWayName(String deliverWayName) {
        this.deliverWayName = deliverWayName;
    }

    public String getAccountTypeName() {
        return accountTypeName;
    }

    public void setAccountTypeName(String accountTypeName) {
        this.accountTypeName = accountTypeName;
    }

    public String getInvoiceTypeName() {
        return invoiceTypeName;
    }

    public void setInvoiceTypeName(String invoiceTypeName) {
        this.invoiceTypeName = invoiceTypeName;
    }

    public String getPayWayName() {
        return payWayName;
    }

    public void setPayWayName(String payWayName) {
        this.payWayName = payWayName;
    }

    public String getAccountNo() {
        return accountNo;
    }

    public void setAccountNo(String accountNo) {
        this.accountNo = accountNo;
    }

    public String getCtmNo() {
        return ctmNo;
    }

    public String setCtmNo(String ctmNo) {
        return this.ctmNo = ctmNo;
    }

    public Integer getPreInvoicing() {
        return preInvoicing;
    }

    public void setPreInvoicing(Integer preInvoicing) {
        this.preInvoicing = preInvoicing;
    }

    public String getPayWay() {
        return payWay;
    }

    public void setPayWay(String payWay) {
        this.payWay = payWay;
    }

    public String getOpenAccountBank() {
        return openAccountBank;
    }

    public void setOpenAccountBank(String openAccountBank) {
        this.openAccountBank = openAccountBank;
    }

    public String getOpenAccountName() {
        return openAccountName;
    }

    public void setOpenAccountName(String openAccountName) {
        this.openAccountName = openAccountName;
    }

    public String getBankAccount() {
        return bankAccount;
    }

    public void setBankAccount(String bankAccount) {
        this.bankAccount = bankAccount;
    }

    public String getEntrustNo() {
        return entrustNo;
    }

    public void setEntrustNo(String entrustNo) {
        this.entrustNo = entrustNo;
    }

    public String getEntrustContract() {
        return entrustContract;
    }

    public void setEntrustContract(String entrustContract) {
        this.entrustContract = entrustContract;
    }

    public String getInvoiceTitle() {
        return invoiceTitle;
    }

    public void setInvoiceTitle(String invoiceTitle) {
        this.invoiceTitle = invoiceTitle;
    }

    public String getInvoiceTax() {
        return invoiceTax;
    }

    public void setInvoiceTax(String invoiceTax) {
        this.invoiceTax = invoiceTax;
    }

    public String getInvoiceAddr() {
        return invoiceAddr;
    }

    public void setInvoiceAddr(String invoiceAddr) {
        this.invoiceAddr = invoiceAddr;
    }

    public String getInvoiceLink() {
        return invoiceLink;
    }

    public void setInvoiceLink(String invoiceLink) {
        this.invoiceLink = invoiceLink;
    }

    public String getInvoiceBank() {
        return invoiceBank;
    }

    public void setInvoiceBank(String invoiceBank) {
        this.invoiceBank = invoiceBank;
    }

    public String getInvoiceAccount() {
        return invoiceAccount;
    }

    public void setInvoiceAccount(String invoiceAccount) {
        this.invoiceAccount = invoiceAccount;
    }

    public Double getAccountBalance() {
        return accountBalance;
    }

    public void setAccountBalance(Double accountBalance) {
        this.accountBalance = accountBalance;
    }

    public String getAccountType() {
        return accountType;
    }

    public void setAccountType(String accountType) {
        this.accountType = accountType;
    }

    public String getInvoiceType() {
        return invoiceType;
    }

    public void setInvoiceType(String invoiceType) {
        this.invoiceType = invoiceType;
    }

    public String getDeliverWay() {
        return deliverWay;
    }

    public void setDeliverWay(String deliverWay) {
        this.deliverWay = deliverWay;
    }

    public String getDeliverAddr() {
        return deliverAddr;
    }

    public void setDeliverAddr(String deliverAddr) {
        this.deliverAddr = deliverAddr;
    }

    public String getEmailAddr() {
        return emailAddr;
    }

    public void setEmailAddr(String emailAddr) {
        this.emailAddr = emailAddr;
    }

    public String getOpenAccountBankName() {
        return openAccountBankName;
    }

    public void setOpenAccountBankName(String openAccountBankName) {
        this.openAccountBankName = openAccountBankName;
    }

    public String getInvoiceBankName() {
        return invoiceBankName;
    }

    public void setInvoiceBankName(String invoiceBankName) {
        this.invoiceBankName = invoiceBankName;
    }

    public String getVatFlag() {
        return vatFlag;
    }

    public void setVatFlag(String vatFlag) {
        this.vatFlag = vatFlag;
    }

    public String getVatFlagName() {
        return vatFlagName;
    }

    public void setVatFlagName(String vatFlagName) {
        this.vatFlagName = vatFlagName;
    }

    public String getBankSn() {
        return bankSn;
    }

    public void setBankSn(String bankSn) {
        this.bankSn = bankSn;
    }

    public int getOutNo() {
        if (0 == outNo) {
            return 1;//去除该属性的前后空格并进行非空非null判断
        }
        return outNo;
    }

    public void setOutNo(int outNo) {
        this.outNo = outNo;
    }

    public String getSignContractDate() {
        return signContractDate;
    }

    public void setSignContractDate(String signContractDate) {
        this.signContractDate = signContractDate;
    }

    public int getLockFlag() {
        return lockFlag;
    }

    public void setLockFlag(int lockFlag) {
        this.lockFlag = lockFlag;
    }

    @Override
    public AccountInfoBean clone() throws CloneNotSupportedException {
        return (AccountInfoBean) super.clone();
    }

}
